package services

import (
	"gin-mvc/dao"
	"gin-mvc/models/admin"
	"log"
)

type (
	TagService interface {
		Tags() (tags []*admin.Tag)
		CreateTag(tag *admin.Tag) int64
	}

	DefaultTagService struct{}
)

func NewTagService() TagService {
	return &DefaultTagService{}
}

func (service *DefaultTagService) Tags() (tags []*admin.Tag) {
	res := dao.DB.Find(&tags)
	if res.Error != nil {
		panic(res.Error.Error())
	}
	return
}

func (service *DefaultTagService) CreateTag(tag *admin.Tag) int64 {
	res := dao.DB.Create(tag)
	if res.Error != nil {
		panic("创建tag失败：" + res.Error.Error())
	}
	log.Printf("tag: %#v", *tag)
	return tag.ID
}
